package SubSequence.Medium;

public class LC0053 {
    public int maxSubArray(int[] nums) {
        int prefixSum = 0, minPrefixSum = 0, maxSubArraySum = Integer.MIN_VALUE;
        for (int num : nums) {
            prefixSum += num;
            maxSubArraySum = Math.max(maxSubArraySum, prefixSum - minPrefixSum);
            minPrefixSum = Math.min(minPrefixSum, prefixSum);
        }

        return maxSubArraySum;
    }
}
